[Release] Automate most manual steps#9419
Conversation
This is absolutely a good idea and has great value, Arturo! It's a great call and I'm happy you found time to do this during support week ❤️ Is there anything I can do to push this forward? Do you need a pre-review? |
| step "1/5" "Updating main branch..." | ||
| git checkout main | ||
| git pull upstream main | ||
|
|
There was a problem hiding this comment.
we should probably also do git fetch upstream --tags here
- Add dirty worktree checks to prep script - Add `git fetch upstream --tags` to publish script - Add GitHub release creation step with changelog extraction - Extract shared package list to variable - Trim verbose comments Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allows trying the release scripts locally without checking out the branch, via curl one-liner. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds internal automation scripts to streamline EUI’s official release flow by reducing manual git/GitHub CLI steps.
Changes:
- Add
scripts/release-prep.shto create a release branch and open a release PR after running the release CLI in dry-run mode. - Add
scripts/release-publish.shto tag the merged release commit, trigger therelease.ymlworkflow, and create a GitHub release. - Add
scripts/release-install.shpluspackage.jsonyarn scripts to make running these workflows easier.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| scripts/release-prep.sh | Automates pre-release PR creation steps (branching, release CLI dry run, PR creation). |
| scripts/release-publish.sh | Automates post-merge publish steps (tagging, workflow trigger, GitHub release creation). |
| scripts/release-install.sh | Convenience installer to place scripts into ~/.local/bin. |
| package.json | Adds yarn release:prep and yarn release:publish script entries. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
We should probably delete this file before merging. We can't use personal forks, gists, and other resources for such purposes, because they could expire someday, and are a short path to pwning someone internal
There was a problem hiding this comment.
you're completely right, that was the intention but i didn't flag it and i had forgotten myself haha, removed it 0588968
| PREV_TAG=$(git describe --tags --abbrev=0 "${MERGE_SHA}^" 2>/dev/null) || error "Could not find a previous release tag" | ||
|
|
||
| # Detect changed workspaces and collect changelog entries for the GitHub release | ||
| CHANGED_WORKSPACES="" |
There was a problem hiding this comment.
Nit: You can now get it directly from .release/published_packages.json, but I'm happy to leave it as-is for the time being
There was a problem hiding this comment.
let's do so, and of course use the new .release/published_packages.json when porting to CI ✨
tkajtoch
left a comment
There was a problem hiding this comment.
I'm adding a "request changes" review just to prevent merging before release-install.sh is removed. I'll approve straight after!
💚 Build SucceededHistory
cc @acstll |
💚 Build Succeeded
History
cc @acstll |
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
This PR adds 2 scripts to automate some of the manual steps involved in the release process.
yarn release:prephelps create the release PRyarn release:publishadds the git tag and triggers the workflow, once the PR has been mergedTODO
ghas wellprepscript, and probably prompt the user about that to do…Note
I used this script for the v113.1.0 release
Why are we making this change?
To save time and prevent errors.
Important
I'm happy to close this if you don't think this is a good idea or has little value
Screenshots
Impact to users
None, internal.
QA
The one (and probably only) way to test this is to actually use it for a real release. If you're feeling adventurous, you can run the script below to get the scripts installed on your
.local/binfolder, so you can run them standalone…bash <(curl -s https://raw.githubusercontent.com/acstll/eui/feat/release-automation/scripts/release-install.sh)then from the eui root:
to create the release PR, and then
to publish.